Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
在本系列文會展開使用 Avalonia UI 技術所建立的 TopAOAIConnector App 。由於使用 Avalonia UI 可以很快速的進行各平台的 桌面 應用程式開發,並且透過此 TopAOAIConnector App 來串接 Azure OpenAI Service 時所需的功能研究。
本篇是 就是要來點 A.I. 的 TopAOAIConnector App 系列文的 EP04。
在前一回 EP 03 提到有關 WSL 的部分,不免俗地來科普一下 WSL 全名是 Windows Subsystem for Linux。相關的安裝方式可以參考 微軟的 Learn 文件,結論就是在 Windows 可以直接使用 Linux 相關方式來操作系統。
安裝 WSL 後可透過 Windows 命令提示字元指令 "wsl --version" 來確認相關的版本資訊:
若透過 "wsl --list --online" 指令,查詢想要直接透過線上安裝哪套 Linux 散發套件 (預設安裝的是 Ubuntu 那套,如下圖紅框)
再透過指令 "wsl" 就能進入該 Ubuntu 的環境,此時就可以透過 "uname -a" 指令查詢到目前的 Linux 系統核心資訊:
接著為了後面能讓 Avalonia UI 專案順遂執行,在這邊先透過 apt 安裝 .NET 8 的環境,請透過指令 "sudo apt install -y dotnet-sdk-8.0" 進行安裝。
安裝完成後即可透過 dotnet --version 進行查詢版本狀況:
再繼續透過 apt 來安裝三個 Avalonia UI 專案要直接從 Visaul Studio 在 WSL 的 Ubuntu 來偵錯執行時需要的 Library:
請依序執行下列三個指令:
sudo apt install libfontconfig1
sudo apt install libice6
sudo apt install libsm6
然後,就可以回到 Windows 下的 Visaul Studio 執行並偵錯該 Avalonia UI 專案了~~~
那如果不安裝上述三個 Libraries 會發生什麼事?可以執行下列三個指令來移除:
sudo apt remove libfontconfig1
sudo apt remove libice6
sudo apt remove libsm6
再次從 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案。
會遇到缺少 libfontconfig1 的 Exception:
System.TypeInitializationException: 'The type initializer for 'SkiaSharp.SKImageInfo' threw an exception.'
InnerException:
System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: libfontconfig.so.1: cannot open shared object file: No such file or directory...(略)
把 libfontconfig1 在 WSL 當中裝回來,再從 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案。
會遇到缺少 libice6 的 Exception:
System.DllNotFoundException: 'Unable to load shared library 'libICE.so.6' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace.
把 libice6 在 WSL 當中裝回來,再從 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案。
會遇到缺少 libsm6 的 Exception:
System.DllNotFoundException: 'Unable to load shared library 'libSM.so.6' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace
所以就再把 libsm6 在 WSL 當中裝回來,就可以正常偵錯執行該 Avalonia UI 專案囉~~~
另外,如果不是要讓 Visaul Studio 透過 WSL 來偵錯執行該 Avalonia UI 專案的話,是可以就不用這樣做,但這就真的不是本系列介紹該討論的範圍了。
好啦~~~
下回就真的要開始回到 TopAOAIConnector App 本身的相關進展了,掰掰!